/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package org.cheetah.youbet.helper;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Calendar;
import java.util.Date;
import org.cheetah.youbet.beans.Avvenimento;
import org.cheetah.youbet.beans.Palinsesto;
import org.cheetah.youbet.sql.Database;
import org.cheetah.youbet.util.AvvenimentoUtil;

/**
 *
 * @author edoardo
 */
public class IncontroHelper extends Helper {

    /**
     * Cerca se per la data che viene passata in input esistono incontri
     *
     * @param calendar
     * @return true se trova risultati per la data passata
     */
    public static boolean findMatchesByDate(Connection con, Calendar calendar) throws SQLException {
        PreparedStatement pstmt = null;
        ResultSet rs = null;
        try {
            pstmt = con.prepareStatement(Database.getSql("database.count.incontro"));
            pstmt.setDate(1, new java.sql.Date(calendar.getTime().getTime()));
            rs = pstmt.executeQuery();
            //verifico solo se sono già presenti dati ad un certa data.
            rs.next();
            if (rs.getInt(1) == 0) {
                return false;
            }
            return true;
        } finally {
            if (rs != null && !rs.isClosed()) {
                rs.close();
            }
            if (pstmt != null && !pstmt.isClosed()) {
                pstmt.close();
            }
        }
    }

    public static void insertIncontro(Connection con, Palinsesto palinsesto, Avvenimento avvenimento, Date date) throws Exception {
        String sql = Database.getSql("database.insert.incontro");
        PreparedStatement pstmt = IncontroHelper.getPreparedStatementBatched(con, sql);
        try {
            int gHome = AvvenimentoUtil.golHome(avvenimento.getRisultatoSecondoTempo(), "-");
            int gAway = AvvenimentoUtil.golAway(avvenimento.getRisultatoSecondoTempo(), "-");
            String homeTeam =AvvenimentoUtil.homeTeam(avvenimento.getDescrizione(),"-");
            String awayTeam = AvvenimentoUtil.awayTeam(avvenimento.getDescrizione(),"-");

            pstmt.setString(1, palinsesto.getNumero());
            pstmt.setString(2, avvenimento.getNumero());
            pstmt.setString(3, avvenimento.getDescrizione());
            pstmt.setDate(4, new java.sql.Date(date.getTime()));
            pstmt.setTime(5, null);
            pstmt.setString(6, AvvenimentoUtil.getSegnoFinale(gHome, gAway));
            pstmt.setInt(7, gHome);
            pstmt.setInt(8, gAway);
            System.out.println("^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^");
            System.out.println(palinsesto.getCompetizione());
            System.out.println("^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^");
            pstmt.setString(9, palinsesto.getCompetizione());
            pstmt.setString(10, homeTeam);
            pstmt.setString(11, awayTeam);
            pstmt.execute();
            System.out.println(palinsesto);
            pstmt.clearParameters();
            con.commit();
        } catch (Exception e) {
            pstmt.clearParameters();
//            throw e;

        }
        finally{
            pstmt.close();
        }
    }

}
